// pages/main/main.js
Page({

  /**
   * 页面的初始数据
   */
  data: {
    name:'',
    kg:"开始",
    index:0,
    left:"0",
    top:"0",
    disabled:"",
    animation:""
  },
  sieve(){
    // 禁用按钮
    this.setData({
      disabled:true,
    })
    //定义筛子类
    const arr=["sieve_1","sieve_2","sieve_3","sieve_4","sieve_5","sieve_6"];
    // 获取this
    let that=this
    let a
      // 随机数0~5
      a=Math.floor(Math.random()*6);
      // 色子点数
      that.setData({
        name:arr[a]
      })
      // 消息提醒
      
      // 延时执行走动
      const item=setTimeout(function(){
        that.Gonext(a+1)
      },500)
  },
  // 前进
  Gonext:function(i){
    this.setData({
      disabled:true,
    })
    wx.showToast({
      title: `前进${i}步`,
      icon: 'none',
      duration: 1000//持续的时间
    })
    let that=this
    let b,c=0,d;
    const query = wx.createSelectorQuery()
      // 获取。list所有节点
      query.selectAll('.list').boundingClientRect()
      // 定时器走几步
      let timer=setInterval(function(){
        // 前进到的位置
        b=that.data.index+1
        // 到达终点
        if(b>33){
          b=0
          wx.showToast({
            title: `恭喜到达终点，你赢了`,
            icon: 'none',
            duration: 1000//持续的时间
          })
        }
        // 赋值给data
        that.setData({
          index:b,
        })
        let animationAction = wx.createAnimation({
          timingFunction: 'linear',
          duration: 300
        })
        this.animation = animationAction
        animationAction.scale(1.2, 1.2).translate(0, -20).step()
        animationAction.scale(1, 1).translate(0, 0).step()
        // 
        query.exec((res)=>{
          // console.log(res[0][0]);
          that.setData({
            top:(res[0][that.data.index].top-100)*2+"rpx",
            left:(res[0][that.data.index].left*2-23)+"rpx",
            animation: animationAction.export()
          })
        })
        // 判断色子的次数和是否到达终点
        if(c>=i-1 || b===0){
          clearInterval(timer)
          query.exec((res)=>{
              d=res[0][that.data.index].id
              if(d!==""){
                const ti=setTimeout(function(){
                  if(d>0){
                    that.Gonext(parseInt(d));
                  }else{
                    that.Gostep(Math.abs(parseInt(d)))
                  }
                },500)
              }
          })
            // 启用按钮
            setTimeout(function(){
              that.setData({
                disabled:"",
              })
            },500)
        }
        c++
    },500)
  },
  // 后退
  Gostep:function(i){
    // 禁用按钮
    this.setData({
      disabled:true,
    })
    let that=this
    let b,c=0;
    wx.showToast({
      title: `后退${i}步`,
      icon: 'none',
      duration: 1000//持续的时间
    })
    const query = wx.createSelectorQuery()
      // 获取。list所有节点
      query.selectAll('.list').boundingClientRect()
      // 定时器走几步
      let timer=setInterval(function(){
        // 前进到的位置
        b=that.data.index-1
        // 到达终点
        if(b>33){
          b=0
          wx.showToast({
            title: `恭喜到达终点，你赢了`,
            icon: 'none',
            duration: 3000//持续的时间
          })
        }
        // 赋值给data
        that.setData({
          index:b,
        })
        let animationAction = wx.createAnimation({
          timingFunction: 'linear',
          duration: 300
        })
        this.animation = animationAction
        animationAction.scale(1.2, 1.2).translate(0, -20).step()
        animationAction.scale(1, 1).translate(0, 0).step()
        // 
        query.exec((res)=>{
          // console.log(res[0][0]);
          that.setData({
            top:(res[0][that.data.index].top-100)*2+"rpx",
            left:(res[0][that.data.index].left*2-23)+"rpx",
            animation: animationAction.export()
          })
        })
        // 判断色子的次数和是否到达终点
        if(c>=i-1 || b===0){
          clearInterval(timer)
          // 启用按钮
          setTimeout(function(){
            that.setData({
              disabled:"",
            })
          },500)
        }
        c++
    },500)
  },
  // 奖励与惩罚

  /**
   * 生命周期函数--监听页面加载
   */
  onLoad: function (options) {

  },

  /**
   * 生命周期函数--监听页面初次渲染完成
   */
  onReady: function () {

  },

  /**
   * 生命周期函数--监听页面显示
   */
  onShow: function () {

  },

  /**
   * 生命周期函数--监听页面隐藏
   */
  onHide: function () {

  },

  /**
   * 生命周期函数--监听页面卸载
   */
  onUnload: function () {

  },

  /**
   * 页面相关事件处理函数--监听用户下拉动作
   */
  onPullDownRefresh: function () {

  },

  /**
   * 页面上拉触底事件的处理函数
   */
  onReachBottom: function () {

  },

  /**
   * 用户点击右上角分享
   */
  onShareAppMessage: function () {

  }
})